package co.com.bean;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Stateless;
import javax.naming.NamingException;

import co.com.smart.maestro.infraestructure.dto.DocenteDTO;
import co.com.smart.maestro.infraestructure.dto.ResponseJson;
import co.com.smart.mapper.Mapper;
import co.com.smart.persistence.entity.DocenteFacade;
import co.com.smart.persistence.entity.DocenteFacadeLocal;
import co.com.smart.persistence.entity.dto.DocenteOBJ;
import co.com.smart.session.DelegateContextEJB;

/**
 * Session Bean implementation class WordBean
 */
@Stateless(mappedName = "ejb/WordBean")
public class WordBean implements WordBeanLocal {

	private DocenteFacade facade;

	public WordBean() {
		facade = new DocenteFacade();
	}

	@Override
	public ResponseJson insertarDocente(DocenteDTO docente) {
		return facade.crearDocente(Mapper.mapperDocenteDTOtoOBJ(docente));
	}

	@Override
	public List<DocenteDTO> consultarAllDocentes(){
		List<DocenteDTO> docentes = new ArrayList<DocenteDTO>();
		DocenteFacadeLocal servicio;
		try {
			servicio = DelegateContextEJB.getDocentesFacadeLocal();
			for (DocenteOBJ entity : servicio.findAll()) {
				docentes.add(Mapper.mapperDocenteOBJtoDto(entity));
			}
		} catch (NamingException e) {
			e.printStackTrace();
		}

		return docentes;
	}

	@Override
	public DocenteDTO consultarDocenteId(DocenteDTO docenteDto) {
		DocenteDTO docente = new DocenteDTO();
		DocenteFacadeLocal servicio;
		try {
			servicio = DelegateContextEJB.getDocentesFacadeLocal();
			docente = Mapper.mapperDocenteOBJtoDto(servicio.find(docenteDto.getCodocente()));
		} catch (NamingException e) {
			e.printStackTrace();
		}

		return docente;
	}

	@Override
	public ResponseJson editDocente(DocenteDTO docente) {
		return facade.editDocente(Mapper.mapperDocenteDTOtoOBJ(docente));
	}

	@Override
	public ResponseJson removeDocente(DocenteDTO docente) {
		return facade.removeDocente(Mapper.mapperDocenteDTOtoOBJ(docente));
	}
}
